home *** CD-ROM | disk | FTP | other *** search
Wrap
SSSSSSSSYYYYRRRR2222((((3333SSSS)))) SSSSSSSSYYYYRRRR2222((((3333SSSS)))) NNNNAAAAMMMMEEEE SSSSSSSSYYYYRRRR2222, DDDDSSSSYYYYRRRR2222 - Performs symmetric rank 2 update of a real symmetric matrix SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS Single precision Fortran: CCCCAAAALLLLLLLL SSSSSSSSYYYYRRRR2222 ((((_u_p_l_o,,,, _n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _a,,,, _l_d_a)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ssssssssyyyyrrrr2222 ((((cccchhhhaaaarrrr *_u_p_l_o,,,, iiiinnnntttt _n,,,, ffffllllooooaaaatttt _a_l_p_h_a,,,, ffffllllooooaaaatttt *_x,,,, iiiinnnntttt _i_n_c_x,,,, ffffllllooooaaaatttt *_y,,,, iiiinnnntttt _i_n_c_y,,,, ffffllllooooaaaatttt *_a,,,, iiiinnnntttt _l_d_a))));;;; Double precision Fortran: CCCCAAAALLLLLLLL DDDDSSSSYYYYRRRR2222 ((((_u_p_l_o,,,, _n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _a,,,, _l_d_a)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ddddssssyyyyrrrr2222 ((((cccchhhhaaaarrrr *_u_p_l_o,,,, iiiinnnntttt _n,,,, ddddoooouuuubbbblllleeee _a_l_p_h_a,,,, ddddoooouuuubbbblllleeee *_x,,,, iiiinnnntttt _i_n_c_x,,,, ddddoooouuuubbbblllleeee *_y,,,, iiiinnnntttt _i_n_c_y,,,, ddddoooouuuubbbblllleeee *_a,,,, iiiinnnntttt _l_d_a))));;;; IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN These routines are part of the SCSL Scientific Library and can be loaded using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option. The ----llllssssccccssss____mmmmpppp option directs the linker to use the multi-processor version of the library. When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is 4 bytes (32 bits). Another version of SCSL is available in which integers are 8 bytes (64 bits). This version allows the user access to larger memory sizes and helps when porting legacy Cray codes. It can be loaded by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use only one of the two versions; 4-byte integer and 8-byte integer library calls cannot be mixed. The C and C++ prototypes shown above are appropriate for the 4-byte integer version of SCSL. When using the 8-byte integer version, the variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header file should be included. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN These routines perform the following symmetric rank 2 operation: _A <- _a_l_p_h_a _x_y_T + _a_l_p_h_a _y_x_T + _A where _a_l_p_h_a is a real scalar, _y_T is the transpose of _y, _x_T is the transpose of _x, _x and _y are _n-element vectors, and _A is an _n-by-_n real symmetric matrix. PPPPaaaaggggeeee 1111 SSSSSSSSYYYYRRRR2222((((3333SSSS)))) SSSSSSSSYYYYRRRR2222((((3333SSSS)))) See the NOTES section of this man page for information about the interpretation of the data types described in the following arguments. This routine has the following arguments: _u_p_l_o Character. (input) Specifies whether the upper or lower triangular part of matrix _A is being supplied, as follows: _u_p_l_o= 'U' or 'u': only the upper triangular part of array _a is referenced. _u_p_l_o= 'L' or 'l': only the lower triangular part of array _a is referenced. _n Integer. (input) Specifies the order of matrix _A. _n >= 0. _a_l_p_h_a Scalar alpha. (input) SSSSSSSSYYYYRRRR2222: Single precision. DDDDSSSSYYYYRRRR2222: Double precision. _x Array of dimension 1+(_n-1) * |_i_n_c_x|. (input) SSSSSSSSYYYYRRRR2222: Single precision array. DDDDSSSSYYYYRRRR2222: Double precision array. _i_n_c_x Integer. (input) On entry, _i_n_c_x specifies the increment for the elements of _x. _i_n_c_x must not be 0. _y Array of dimension 1+(_n-1) * |_i_n_c_y|. (input) SSSSSSSSYYYYRRRR2222: Single precision array. DDDDSSSSYYYYRRRR2222: Double precision array. _i_n_c_y Integer. (input) On entry, _i_n_c_y specifies the increment for the elements of _y. _i_n_c_y must not be 0. _a Array of dimension (_l_d_a,_n). (input and output) SSSSSSSSYYYYRRRR2222: Real array. DDDDSSSSYYYYRRRR2222: Double precision array. Before entry with _u_p_l_o='U' or 'u', the leading _n-by-_n upper triangular part of array _a must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of _a is not referenced. On exit, the upper triangular part of the updated matrix overwrites the upper triangular part of array _a. Before entry with _u_p_l_o='L' or 'l', the leading _n-by-_n lower triangular part of array _a must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of _a is not referenced. On exit, the lower triangular PPPPaaaaggggeeee 2222 SSSSSSSSYYYYRRRR2222((((3333SSSS)))) SSSSSSSSYYYYRRRR2222((((3333SSSS)))) part of the updated matrix overwrites the lower triangular part of array _a. _l_d_a Integer. (input) Specifies the first dimension of _a as declared in the calling program. _l_d_a >= MMMMAAAAXXXX(1,_n). NNNNOOOOTTTTEEEESSSS SSSSSSSSYYYYRRRR2222/DDDDSSSSYYYYRRRR2222 is a Level 2 Basic Linear Algebra Subprogram (Level 2 BLAS). When working backward (_i_n_c_x < 0 or _i_n_c_y < 0), this routine starts at the end of the vector and moves backward, as follows: _x(1-_i_n_c_x * (_n-1)), _x(1-_i_n_c_x * (_n-2)) , ..., _x(1) _y(1-_i_n_c_y * (_n-1)), _y(1-_i_n_c_y * (_n-2)) , ..., _y(1) DDDDaaaattttaaaa TTTTyyyyppppeeeessss The following data types are described in this documentation: TTTTeeeerrrrmmmm UUUUsssseeeedddd DDDDaaaattttaaaa ttttyyyyppppeeee Fortran: Array dimensioned _n xxxx((((nnnn)))) Array of dimensions (_m,_n) xxxx((((mmmm,,,,nnnn)))) Character CCCCHHHHAAAARRRRAAAACCCCTTTTEEEERRRR Integer IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision RRRREEEEAAAALLLL Double precision DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN C/C++: Array dimensioned _n xxxx[[[[_n]]]] Array of dimensions (_m,_n) xxxx[[[[mmmm****nnnn]]]] Character cccchhhhaaaarrrr Integer iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision ffffllllooooaaaatttt Double precision ddddoooouuuubbbblllleeee PPPPaaaaggggeeee 3333 SSSSSSSSYYYYRRRR2222((((3333SSSS)))) SSSSSSSSYYYYRRRR2222((((3333SSSS)))) Note that you can explicitly declare multidimensional C/C++ arrays provided that the array dimensions are swapped with respect to the Fortran declaration (e.g., xxxx[[[[nnnn]]]][[[[mmmm]]]] in C/C++ versus xxxx((((mmmm,,,,nnnn)))) in Fortran). To avoid a compiler type mismatch error in C++ (or a compiler warning message in C), however, the array should be cast to a pointer of the appropriate type when passed as an argument to a SCSL routine. SSSSEEEEEEEE AAAALLLLSSSSOOOO IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222(3S), CCCCHHHHEEEERRRR2222(3S) IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77 Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic Linear Algebra Subprograms Technical Forum. PPPPaaaaggggeeee 4444